//
//  Readme.h
//  Weibo
//
//  Created by teacher on 2017/6/5.
//  Copyright © 2017年 teacher. All rights reserved.
//

//-----------------  第四天  --------------
//  OAuth
//  O->Open
//  A->Auth
//  总结： 开放授权协议

//  使用场景及作用： 在app第三方登录的时候，可以使用OAuth，登录成功后在用户‘授权’的情况下获取第三方(qq,微博，微信，。。。)资源数据，而第三方的app是不知道我们的用户名和密码的，相对比较安全，第三方数据是不包含隐私数据的，只能获取比如（用户昵称，头像， 性别，隐私是获取不了的）

//  OAuth授权流程：
/*
    1. 加载第三方登录界面(qq,微信，微博)
    2. 在用户登录成功并且授权的情况下可以获取授权码
    3. 通过授权码获取第三方平台(qq,,微信，微博)访问令牌，令牌表示你是第三方的一个合法用户
    4. 通过令牌访问指定第三方平台（qq,微信，微博）的资源数据，注意不包含隐私数据
 
 */

/*
    OAuth授权获取数据的流程
    1. 在新浪微博开放平台上创建应用
    2. 在高级信息设置授权回调页和取消授权回调页，授权回调页以后登录成功在用户授权的情况下给拼接授权码
    3. 如果应用没有上线在新浪微博的开放平台上登录，需要关联测试账号，只能有15个账号
 
    4. 加载微博的登录界面
    5. 获取授权码
    6. 通过授权码获取令牌（accesstoken）
    7. 通过令牌获取微博资源数据
 
 */


//-----------------  第五天  --------------
//  视图控制器的切换
/*
    1. 根视图控制器弹出登录界面
    2. 登录界面登录成功后进行欢迎页面
    3. 欢迎动画执行完成以后进行首页
 
 */




//  ----------------- 第六天 ------------------
/*
    1. 作业
        - 1.转发评论赞数显示的逻辑处理
            - 如果数据大于0 小于 10000 显示具体数字
            - 如果数据等于10000 显示 1万，不能1.0万
            - 如果数据<=0 显示具体文字（转发，评论，赞）
            - 如果数据大于10000 显示1.x万， 2.x万
 */


//  ----------------- 第七天 ------------------
/*
    单张图片显示原始大小的逻辑处理
    
        1. 判断微博数据(原创微博和转发微博)配图个数等于1 
        2. 异步下载单张图片，注意点： 需要等到所有的单张图片都下载完，才能完成回调， 可以使用调度组
        3. 重新加载微博数据
        4. 在设置配图数据的时候，判断配图的个数如果等于1， 需要使用图片的大小作为配图的大小
 
 */

//  ----------------- 第八天 ------------------

/*
    时间格式化的处理
        提示： 时间表示发微博的时间
        判断时间是否是今年
            判断是否是今天
                判断是否是1分钟之前
                    刚刚
                判断是否是1小时之前
                    xx分钟前
                其它
                    xx小时前
 
            判断是否是昨天
              - 昨天 09:10
            其它
              - 06-03 10:08
        不是今年
            - 2016-10-29 10:10
 */

//  ----------------- 第十天 ------------------

/*
    表情键盘数据格式的分析
        1. 每页显示20个表情按钮，对应的数据格式 -> [Model]
        2. 每种表情有可能需要显示多页， 对应的数据格式 -> [[Model],[Model],[Model],[Model],[Model],[Model],.....]
        3. 表情视图（collectionView）需要知道显示几种表情，对应的数据格式->[[[最近表情],xx], [[默认表情],xx], [[emoji表情],xx], [[浪小花表情],xx]]
            let array = [[[1,2,3]],[[1,2,3]]]
 */


/*
    [笑cry][笑cry]
    0-6,6-6
 */
//  ----------------- 第十二天 ------------------
/*
    YYText集成步骤
    1. pod 'YYText'
    2. 把UILabel改成YYLabel
        - 1. 内容没有换行 , 解决办法： 设置最大换行宽度 label.preferredMaxLayoutWidth = ScreenWidth - 2 * HomeCellMargin
        - 2. 使用NSAttributedString通过图片创建富文本，在YYLabel下显示不出来表情，解决办法： 使用YYText这个NSAttributedString提供的图片转富文本的方法就可以了
            -  使用YYText 把图片转富文本
                let emoticonAttributedText = NSAttributedString.yy_attachmentString(withEmojiImage: image, fontSize: fontSize)!
 
 
 */

/*
    首页微博数据缓存表结构的分析
        用户id 124， 微博id 111
        用户id 123， 微博id 111
 //     以上情况可以存储，只有用户id和微博id都相同才不能存储
        复合主键，判断这个两个主键都在表里面存在才不能添加， 比如： 用户id 123， 微博id 111，再次出现用户id 123， 微博id 111 ，才不能存储
        1. id 微博id，用于查询本地微博数据的, 主键
        2. status 微博内容，存储在表里面使用二进制
        3. userid 用户id，用于区分不同用户关注微博数据 主键
        4. time   表示缓存数据的时间， 用于删除缓存数据的时候使用
 */






